﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Skywave.Security
{
    public enum PolicyConditionCompareTypes
    {
        Equals,
        Contains
    }

    public class PolicyCondition
    {
        private bool _IsInclude = true;
        /// <summary>
        /// IsInclude Property
        /// </summary>
        public bool IsInclude
        {
            get { return _IsInclude; }
            set { _IsInclude = value; }
        }

        private string _PolicyName;
        /// <summary>
        /// PolicyName Property
        /// </summary>
        public string PolicyName
        {
            get { return _PolicyName; }
            set { _PolicyName = value; }
        }

        private int _PolicyIssuerId;
        /// <summary>
        /// PolicyIssuerId Property
        /// </summary>
        public int PolicyIssuerId
        {
            get { return _PolicyIssuerId; }
            set { _PolicyIssuerId = value; }
        }

        private PolicyValueReflectionType _PolicyReflectionType;
        /// <summary>
        /// PolicyReflectionType Property
        /// </summary>
        public PolicyValueReflectionType PolicyReflectionType
        {
            get { return _PolicyReflectionType; }
            set { _PolicyReflectionType = value; }
        }

        private object _PolicyValue;
        /// <summary>
        /// PolicyValue Property
        /// </summary>
        public object PolicyValue
        {
            get { return _PolicyValue; }
            set { _PolicyValue = value; }
        }

        private PolicyConditionCompareTypes _CompareType;
        /// <summary>
        /// CompareType Property
        /// </summary>
        public PolicyConditionCompareTypes CompareType
        {
            get { return _CompareType; }
            set { _CompareType = value; }
        }

        private int _PolicyTargetId = -1;
        /// <summary>
        /// TargetId Property
        /// </summary>
        public int PolicyTargetId
        {
            get { return _PolicyTargetId; }
            set { _PolicyTargetId = value; }
        }

        private int _UserGroupTargetId = -1;
        /// <summary>
        /// UserGroupTargetId Property
        /// </summary>
        public int UserGroupTargetId
        {
            get { return _UserGroupTargetId; }
            set { _UserGroupTargetId = value; }
        }

    }
}
